Stop crashing when parsing network policies that only specify protocol and not port #643
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes #642, which causes kube-router to crash on valid network policies, and also implements support for ingress and egress rules without a port specified.
The iptable rules created before and after this patch are equivalent when using network policies that specify both port an protocol. When only specifying a protocol, the rules end up looking like this (output from
iptables -S
):The same rules with a port specified ends up as
Note how
-m tcp
is missing from the rules without a--dport
. I have no idea what causes-m tcp
in the output, since (as far as I can tell) it isn't added to the iptables command innetwork_policy_controller.go
. Any input as to what causes this is most welcome.No further testing has been done yet, but I plan to apply this patch on our cluster tomorrow.